package com.flida.echart.basic.api.service;

import com.flida.echart.basic.api.system.entity.SysConfigEntity;

import java.util.List;
import java.util.Map;

/**
 * Created by yzc on 2016/12/18.
 */
public interface GateSystemService {
    /**系统配置相关**/
    /**
     * 保存配置信息
     */
    public void saveConfig(SysConfigEntity config);

    /**
     * 更新配置信息
     */
    public void updateConfig(SysConfigEntity config);

    /**
     * 根据key，更新value
     */
    public void updateValueByKeyConfig(String key, String value);


    /**
     * 删除配置信息
     */
    public void deleteBatchConfig(Long[] ids);

    /**
     * 获取List列表
     */
    public List<SysConfigEntity> queryListConfig(Map<String, Object> map);
    /**
     * 获取总记录数
     */
    public int queryTotalConfig(Map<String, Object> map);

    public SysConfigEntity queryObjectConfig(Long id);

    /**
     * 根据key，获取配置的value值
     *
     * @param key           key
     * @param defaultValue  缺省值
     */
    public String getValueConfig(String key, String defaultValue);

    /**
     * 根据key，获取value的Object对象
     * @param key    key
     * @param clazz  Object对象
     */
    public <T> T getConfigObject(String key, Class<T> clazz) throws Exception;
}
